package cn.amebius.simpledocker.service;

import cn.amebius.simpledocker.controller.request.AddUserRequest;
import cn.amebius.simpledocker.entity.dto.UserBaseInfoDto;
import cn.amebius.simpledocker.entity.dto.UserGroupInfoDto;
import cn.amebius.simpledocker.entity.dto.UserPageDto;
import cn.amebius.simpledocker.entity.dto.UserRoleInfoDto;
import cn.amebius.simpledocker.entity.model.PageModel;
import cn.amebius.simpledocker.util.PageRequest;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Set;

/**
 * 用户服务
 * @author 阿伟
 * @date 2023/7/28 15:48
 */
@Service
public interface UserService {

    /**
     * 获取用户基本信息
     * @param userId 用户ID
     */
    UserBaseInfoDto getBaseInfo(Integer userId);


    /**
     * 获取用户角色信息
     * @param userId 用户ID
     */
    UserRoleInfoDto getUserRole(Integer userId);


    /**
     * 获取用户小组信息
     * @param userId 用户ID
     */
    UserGroupInfoDto getUserGroup(Integer userId);

    /**
     * 获取用户权限组
     * @param userId 用户ID
     */
    Set<String> getUserPermission(Integer userId);

    /**
     * 获取用户分页数据
     * @param pr 分页参数
     * @return 用户分页数据
     */
    PageModel<UserPageDto> getUserPage(PageRequest pr);


    /**
     * 添加一个用户
     * @param aur 添加用户的参数
     */
    void addUser(AddUserRequest aur);

}
